C/C++

推荐列表 站点导航

当前位置:首页 > 脚本编程 > C/C++ >

C++_C#使用反射加载多个程序集的实现方法,当开发插件的时候需要用到反

来源:网络整理  作者:网友投稿  发布时间:2020-12-28 03:51
C#使用反射加载多个程序集的实现方法,当开发插件的时候需要用到反射,在客户端动态加载遍历程序集,并调用每个...

把"输出路径"设置成Plugins文件夹,并生成类库项目Assembly2,添加对控制台项目的引用。

创建一个控制台应用程序,并创建实现ISay接口的类: namespace Assembly1 {public class OneSay : ISay{public void SaySth(){Console.WriteLine("我来自程序集1");}} } 右键类库项目Assembly1--"属性"--"生成",并调用每个程序集的方法, ,希望能给大家一个参考,并生成类库项目Assembly1。

把"输出路径"设置成Plugins文件夹,并保存到ISay类型的集合中 →客户端遍历ISay类型的集合, "*.dll")){//加载程序集var asm = Assembly.LoadFrom(file);//遍历程序集中的类型foreach (var type in asm.GetTypes()){//如果是ISay接口if (type.GetInterfaces().Contains(typeof (ISay))){//创建接口类型实例var isay = Activator.CreateInstance(type) as ISay;if (isay != null){result.Add(isay);}}}}return result;} 再创建一个类库项目Assembly2,调用ISay的接口方法 class Program{static void Main(string[] args){foreach (var say in GetSpeakers()){say.SaySth();}}static ListISay GetSpeakers(){ListISay result = new ListISay();//获取项目根目录下的Plugins文件夹string dir = Directory.GetCurrentDirectory();//遍历目标文件夹中包含dll后缀的文件foreach (var file in Directory.GetFiles(dir + @"\", 当开发插件的时候需要用到反射, 客户端需要找到所有程序集中所有实现ISay接口的类,右键控制台项目--"属性"--"生成",添加对控制台项目的引用,其基本思路是: →找到Plugins文件夹下所有dll后缀的文件 →遍历这些文件,并创建实现ISay接口的类: namespace Assembly2 {public class TwoSay : ISay{public void SaySth(){Console.WriteLine("我来自程序集2");}} } 右键类库项目Assembly2--"属性"--"生成",控制台的可执行文件和所有程序集文件都生成在这里,把"输出路径"设置成Plugins文件夹,根据文件名动态加载程序集 →遍历程序集中实现ISay接口的类型, 再次运行控制台项目, 创建类库项目Assembly1。

在客户端动态加载遍历程序集, 以上这篇C#使用反射加载多个程序集的实现方法就是小编分享给大家的全部内容了,也希望大家多多支持phpstudy,首先设计一个接口: public interface ISay {void SaySth(); } 在控制台应用程序下创建Plugins文件夹,。

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jiaob/cjj/10025.shtml

最新文章
只需要在调用Ctrl+B编译后 只需要在调用Ctrl+B编译后

时间:2021-01-13

OpenGL超级宝典visual studio OpenGL超级宝典visual studio

时间:2021-01-04

Directx11 教程(2) 基本的wi Directx11 教程(2) 基本的wi

时间:2021-01-04

LeetCode11ContainerWithMostWate LeetCode11ContainerWithMostWate

时间:2021-01-04

C语言简单IT之家速成 C语言简单IT之家速成

时间:2020-12-27

三分钟了解Activity工作流 三分钟了解Activity工作流

时间:2020-12-27

编译器是如何实现32位整型 编译器是如何实现32位整型

时间:2020-12-27

C++中lower_bound函数和upper C++中lower_bound函数和upper

时间:2020-12-27

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

C++_C#使用反射加载多个程序集的实现方法,当开发插件的时候需要用到反

2020-12-28 编辑:网友投稿

把"输出路径"设置成Plugins文件夹,并生成类库项目Assembly2,添加对控制台项目的引用。

创建一个控制台应用程序,并创建实现ISay接口的类: namespace Assembly1 {public class OneSay : ISay{public void SaySth(){Console.WriteLine("我来自程序集1");}} } 右键类库项目Assembly1--"属性"--"生成",并调用每个程序集的方法, ,希望能给大家一个参考,并生成类库项目Assembly1。

把"输出路径"设置成Plugins文件夹,并保存到ISay类型的集合中 →客户端遍历ISay类型的集合, "*.dll")){//加载程序集var asm = Assembly.LoadFrom(file);//遍历程序集中的类型foreach (var type in asm.GetTypes()){//如果是ISay接口if (type.GetInterfaces().Contains(typeof (ISay))){//创建接口类型实例var isay = Activator.CreateInstance(type) as ISay;if (isay != null){result.Add(isay);}}}}return result;} 再创建一个类库项目Assembly2,调用ISay的接口方法 class Program{static void Main(string[] args){foreach (var say in GetSpeakers()){say.SaySth();}}static ListISay GetSpeakers(){ListISay result = new ListISay();//获取项目根目录下的Plugins文件夹string dir = Directory.GetCurrentDirectory();//遍历目标文件夹中包含dll后缀的文件foreach (var file in Directory.GetFiles(dir + @"\", 当开发插件的时候需要用到反射, 客户端需要找到所有程序集中所有实现ISay接口的类,右键控制台项目--"属性"--"生成",添加对控制台项目的引用,其基本思路是: →找到Plugins文件夹下所有dll后缀的文件 →遍历这些文件,并创建实现ISay接口的类: namespace Assembly2 {public class TwoSay : ISay{public void SaySth(){Console.WriteLine("我来自程序集2");}} } 右键类库项目Assembly2--"属性"--"生成",控制台的可执行文件和所有程序集文件都生成在这里,把"输出路径"设置成Plugins文件夹,根据文件名动态加载程序集 →遍历程序集中实现ISay接口的类型, 再次运行控制台项目, 创建类库项目Assembly1。

在客户端动态加载遍历程序集, 以上这篇C#使用反射加载多个程序集的实现方法就是小编分享给大家的全部内容了,也希望大家多多支持phpstudy,首先设计一个接口: public interface ISay {void SaySth(); } 在控制台应用程序下创建Plugins文件夹,。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jiaob/cjj/10025.shtml

相关文章

风云图片

推荐阅读

返回C/C++频道首页